package Shape;

public abstract class Triangle extends Shape{

    double a;
    double b;
    double c;

    @Override
    public void draw() {
        System.out.println("三角形：a="+a+"b="+b+"c="+c);
    }

}

//抽象类中不一定包含有抽象方法
//但是抽象方法的类一定是抽象类
//
//抽象类可以有构造方法，供子类创建对象，初始化父类的成员变量
//

//抽象类的作用
//相当于多了一层编译器的检验、
//例如，你没有 抽象类，你应该子类完成的工作，不小心误用了父类，使用普通类编译器是不会检查出来的
//但是是抽象类，就会在实例化时候提示错误
//很多语法存在的意义都是为了预防犯错
//final也是类似，如果创建的变量用户不去修改，那也就是常量
//但是加上final会让我们去更改的时候，让编译器及时提醒我们
//充分利用编译器的校验，在实际开发中是非常有意义的
//

//接口的概念
//现实生活中，接口的例子比比皆是，比如：笔记本的usb接口
//电源插座
//等等：都是一个统一的标准
//
//电脑的usb口：u盘、鼠标、键盘……所有符合usb协议的设备
//电源插座插孔：电脑、电视机、电饭煲、……所有符合协议的
//
//从上面那么多例子：
//可以看出来：接口就是公共的行为规范标准
//大家在实现时候，只要符合规范标准，就可以通用
//在java中：
//接口可以看作是多个类的公共规范，是一种引用数据类型
//
//语法格式与定义类的格式基本相同
//直接将class关键字换位interface关键字
//就定义了一个接口
//

//在接口中，多有的方法都是抽象方法
//类型都是public abstract
//所有语法会有很多
//你直接就写最简单的
//

//创建接口时候，接口名字，大写字母开头I
//接口名称一般使用形容词词性的单词
//阿里规范：所有的属性和方法都不要假任何修饰符；


//接口不能直接使用，必须要有一个“实现类”类实现接口
//实现接口中的所有方法
//

//注意：子类和父类之间是extends关系，但是类和接口之间是implements
//